package javaCode.chapter12.string_;

/**
 * @author 徐州城
 * @version 1.0
 */
public class StringMethod02 {
    public static void main(String[] args) {
        //toUpperCase 将字符串转成大写
        String s1 = "Hello";
        System.out.println(s1.toUpperCase());

        //toLowerCase 将字符串转成小写
        System.out.println(s1.toLowerCase());

        //concat 拼接字符串
        s1 = s1.concat("🐎老师").concat("PDD");
        System.out.println(s1);

        //replace 替换字符串的字符
        String s2 = "马 牛 兔 马";
        //在s2中 将所有的马替换成鼠
        //解读：s2.replace() 执行后 返回的结果是替换过的  对s1是没有变化的，和go append()函数一样
        s2 = s2.replace("马","鼠");
        System.out.println(s2);

        //split 分割字符串，对于某些分给字符，我们需要 转义比如 |\\等
        String poem = "锄禾日当午，汗滴禾下土";
        //1、把poem中所有的, 经行切割，返回一个新的数组
        //2、在对字符串进行分割时，如果有特殊字符，需要加入 转移符 \
        System.out.println(poem.split(","));
        poem = "E:\\aa\\bb";
        String[] split = poem.split("\\\\");
        System.out.println("===分割后的内容===");
        for(String str : split){
            System.out.print(str);
        }
        System.out.println();

        //toCharArray 转成字符数组
        String s3 = "happy";
        char[] chs = s3.toCharArray();
        for(char c : chs){
            System.out.print(c + " ");
        }

        //compareTo 比较两个字符串的大小，如果前者大，返回正数，后者大，则返回负数，如果相等，返回0
        //如果两者相同 比如 a=jac b=jack 那么则 a.length-b.length = -1;
        // a=jackabc b=jack 也是一样a.length-b.length=3
        //如果长度相同且字符也相同 则返回0
        String a = "jcon";
        String b = "jack";
        System.out.println(a.compareTo(b)); //返回'c'-'a' = 2的值;

        //format 格式化字符串，%s 字符串，%c 字符，%d 整形
        String name = "john";
        int age = 20;
        char gender = '男';
        //将所有的信息拼接在一个字符串
        String info = "我的名字是" + name + " 今年" + age + " 性别" + gender;
        System.out.println(info);
        System.out.println(String.format("我的名字是%s,今年%d岁,性别%c",name,age,gender));
    }
}
